Motion.SetAxisCyclicSwitch 方法

使用軸位置來控制重複觸發數位輸出的開關。當軸達到特定的位置,開關即開啟或關閉,開關可透過軸向前或向後移動的方向來控制。

命名空間IntervalZero.KINGSTAR.Local.Api

組合: IntervalZero.KINGSTAR.Local.Api (於 IntervalZero.KINGSTAR.Local.dll) 版本:4.4.0.0

語法

C#VB
public KsCommandStatus SetAxisCyclicSwitch(
       int Index,
       McOutput Output,
       double StartPosition,
       McCamSwitch CyclicSwitch,
       McLengthType IntervalType,
       double Interval,
       McLengthType DurationType,
       double Duration,
       McSource ValueSource
)
Public Function SetAxisCamSwitch(
       Index As Integer,
       Output As McOutput,
       StartPosition As Double,
       CyclicSwitch As McCamSwitch,
       McLengthType As IntervalType,
       Interval As Double,
       DurationType As McLengthType,
       Duration As Double,
       ValueSource As McSource
) As KsCommandStatus

參數

Index [in]

型別:int

軸索引。索引以 0 為起始;別名將影響此參數。

 

Output [in]

型別:McOutput

選擇對應軌道所控制的數位輸出。

 

StartPosition [in]

型別:double

週期開始的位置。

 

CyclicSwitch [in]

型別:McCamSwitch

控制開關動作。

 

IntervalType [in]

型別:McLengthType

Interval 類型。可使用 mcDistance 與 mcTime。

 

Interval [in]

型別:double

週期長度。依照所選的 IntervalType 而定,值必須為正。

 

DurationType [in]

型別:McLengthType

Duration 類型。可使用 mcDistance 與 mcCount。

 

Duration [in]

型別:double

週期重複的持續時間,依照所選的 DurationType 而定,值必須為正。

 

ValueSource [in]

型別:McSource

定義軸值的來源,例如:位置。參見 McSource

回傳值

型別:KsCommandStatus

回傳 KsCommandStatus 類別。

備註

範例

C#
N/A

 

使用案例:

以下案例雖來自於 RT/Win32 介面,但有助於理解週期開關的運作方式。

案例 1

循環開關在持續時間內完成其任務。

McOutput outputBit = {
   FALSE,   //Axis or IO module. FALSE = I/O.
   0,       //Index
   0        //Offset
}

McCamSwitch cyclicSwitch = {
   0,    //TrackNumber
   40,   //FirstOnPosition 
   60,   //LastOnPosition
   1,    //AxisDirection. 1 = Positive.
   0,    //CamSwitchMode. 0 = Position.
   0     //Duration. It is not used in this case.
);

Command = SetAxisCyclicSwitch(
   TargetAxis,    //Index
   outputBit,     //Output
   100,           //StartPosition
   cyclicSwitch,  //CyclicSwitch
   mcDistance,    //IntervalType
   100,           //Interval
   mcDistance,    //DurationType
   250,           //Duration
   mcSetValue     //ValueSource
);

案例 2

循環開關在完成任務之前中止。

McOutput outputBit = {
   FALSE,   //Axis or IO module. FALSE = I/O.
   0,       //Index
   0        //Offset
}

McCamSwitch cyclicSwitch = {
   0,        //TrackNumber
   0,        //FirstOnPosition
   0,        //LastOnPosition
   1,        //AxisDirection. 1 = Positive.
   1,        //CamSwitchMode. 1 = Time.
   0.003     //Duration
);

Command = SetAxisCyclicSwitch(
   TargetAxis,    //Index
   outputBit,     //Output
   100,           //StartPosition
   cyclicSwitch,  //CyclicSwitch
   mcTime,        //IntervalType
   0.005,         //Interval
   mcCount,       //DurationType
   3,             //Duration
   mcSetValue     //ValueSource
);

參見

Motion 類別

IntervalZero.KINGSTAR.Local.Api 命名空間